package com.shop.mapper;

import com.shop.auth.RolePerssionRealm;
import com.shop.entity.SysUser;
import com.shop.entity.dto.RolePerssionDTO;
import com.shop.entity.dto.UserRoleDTO;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @author  huangfei
 * @version 1.0
 */
@Mapper
public interface SysUserMapper {
    /**
     * 查询所有用户
     * @return List<SysUser>
     */
    List<SysUser>    findAllSysUser();

    /**
     *更新用户信息
     * @param sysUser
     * @return Integer
     */
    Integer updateSysUser(SysUser sysUser);

    /**
     * 根据用户名查询密码
     * @param userName
     * @return  SysUser
     */
    SysUser findSysUserByUserName(@Param("userName") String userName);

    /**
     * 根据用户名查询角色和权限数据
     * @param userName
     * @return List<RolePerssionDTO>
     */
   List<RolePerssionDTO> findRolePerssionByUserName(@Param("userName") String userName);
    /**
     * 查询所有用户数数据
     * @param userParams
     * @return  List<UserRoleDTO>
     */
    List<SysUser> findUserRoleByNameOrAll(Map<String,Object> userParams);
    /**
     * 查询所有用户数数据
     * @param userParams
     * @return  Integer
     */
    Integer findUserRoleByNameOrAllCount(Map<String,Object> userParams);

    /**
     * 根据id删除用户
     * @param id
     * @return Integer
     */
    Integer deleteSysUserById(@Param("id") Integer id);

    /**
     * 新增用户
     * @param user
     * @return Integer
     */
    Integer insertSysUser(SysUser user);

    /**
     * 根据用户id查询salt
     * @param id
     * @return String
     */
    String findSysUserByIdSalt(@Param("id") Integer id);

    /**
     * 根据用户名查询角色id
     * @param userName
     * @return  List<Integer>
     */
    List<Integer> findRoleIdByuserName(@Param("userName") String userName);

}
